The ANSI SQL-99 standard (American National Standards Institute Structured Query Language standard for 1999) introduced two new data types for user defined types (UDT): a user defined distinct type (UDT distinct type), and a user defined structured type (UDT structured type). The UDT distinct type is based on a predefined type, such as integer, and the UDT structured type is a composite type including one or more data members of one or more respective data types.
The user defined structured type shares many properties in common with the C-language “struct.” Both a C-language struct and a UDT structured type can be declared to be composed of any number of data members which can be either homogeneous or heterogeneous with respect to their data types. Both a C-language struct and a UDT structured type can also be nested, containing data members which are themselves structured types. The declaration of a UDT structured type is entered into a database system (DBS) using SQL Data Definition Directives. While the ANSI SQL-99 standard defines the behavior and functionality to be provided by a UDT structured type, the standard does not define how to implement a UDT structured type.